<?php
class Categoria extends AppModel {

    public $useTable = "categorias";
    var $actsAs = array('Tree');
    public $validate = array(
        'nome' => array(
            'minimo' => array(
                'rule' => array('minLength', '3'),
                'message' => 'O "nome" deve ter no mánimo 3 caracteres.'
            ),
            'obrigatorio' => array(
                'rule' => 'notEmpty',
                'message' => 'O campo "nome" é obrigatório.'
            )
        )
    );

    public function abrir($categoriaID) {
        // carrega um objeto
        $this->read(null, $categoriaID);

        // exceção em caso de não encontrar
        if ($this->field("id") != $categoriaID)
            throw new Exception("Objeto não encontrado.");
    }

    public function adicionar() {
        // prepara as informações
        $data = $this->data;

        // prepara o objeto para inserção
        $this->create();

        // salva o objeto
        $result = $this->save($data);

        // retorna erro em caso de falha
        if (!$result)
            throw new Exception("Não foi possível adicionar o objeto.");
    }

    public function editar() {
        // salva o objeto
        $result = $this->save();

        // retorna erro em caso de falha
        if (!$result)
            throw new Exception("Não foi posível atualizar o objeto.");
    }

    public function remover() {
        // remove o objeto
        $result = $this->delete($this->field("id"));

        // retorna erro em caso de falha
        if (!$result)
            throw new Exception("Não foi possível remover o objeto.");
    }

}
?>
